<div class="larry-personal">
	<div class="layui-tab">
		<!-- 筛选 -->
		<form class="layui-form" action="">
			<!-- 下拉选择 -->
			<!--<div class="layui-form-item" style="display:inline-block;">
					<div class="layui-inline">
						<label class="layui-form-label">内容:</label>
						<div class="layui-input-inline" style="width:200px">
							<input value="" id="keywords" name="keywords"  class="layui-input search_input" type="text">
						</div>
					</div>
				</div>
-->



			<!-- 下拉选择结束 -->
			<!-- 日期范围选择 -->
			<div class="layui-form-item" style="display:inline-block">
				<div class="layui-inline">
					<label class="layui-form-label">日期范围:</label>
					<div class="layui-input-inline">
						<input type="text"  name="datestr" class="layui-input" id="datestr" placeholder="请选择" style="width: 150px;" />
					</div>
				</div>
			</div>
			<!-- 日期范围选择结束 -->
			&nbsp;&nbsp;&nbsp;&nbsp;
			<a class="layui-btn search_btn btn_color_lanse"  onclick="reloadTable()" style="margin-left:10px">重置</a>
			<a class="layui-btn search_btn btn_color_lanse"  onclick="searchSysLog()" style="margin-left:10px">查询</a>
		</form>
		<!-- 功能区域 -->
		<blockquote class="layui-elem-quote news_search"  >
			<!--<div class="layui-inline"><a class="layui-btn btn_color_lanse" onclick="add()">添加</a></div>-->
			<div class="layui-inline"><a class="layui-btn btn_color_lvse" id="exportSysLog" >导出</a></div>
			<div class="layui-inline"><a class="layui-btn btn_color_hongse" onclick="del()" >批量删除</a></div>
		</blockquote>
		<!-- 功能区域结束 -->
		<!-- 表格开始 -->
		<form class="layui-form">
			<table class="layui-table" id="layuitable" lay-filter="tableFilter" > </table>
		</form>
		<div>
			<!-- 工具栏 toobar  可以放到 任意位置-->
			<script type="text/html" id="toolbar">
					<a class="layui-btn btn_color_lanse" lay-event="detail" style="line-height: 25px;height: 25px;" >查看</a>
					<!--<a class="layui-btn btn_color_lvse" lay-event="update"  style="line-height: 25px;height: 25px;" >修改</a>
					<a class="layui-btn btn_color_hongse" lay-event="del"  style="line-height: 25px;height: 25px;" >删除</a>-->

					<!-- 这里同样支持 laytpl 语法，如：
               {{#  if(d.auth > 2){ }}
               <a class="layui-btn layui-btn-mini" lay-event="check">审核</a>
               {{#  } }}
               -->

				</script>
		</div>

	</div>
</div>

<script>

    function searchSysLog(){//查询
       // var content = $("#keywords").val();
        var datestr = $("#datestr").val();
        layui.table.reload('layuitable', {   where: { page:1,rows:10,  datestr:datestr  } });
    }

    function  reloadTable() {//刷新表格
        //$("#keywords").val('');
        $("#datestr").val('');
        //防止缓存
        layui.table.reload('layuitable', {   where: {page:1,rows:10,  datestr:null } });
    }


    layui.use(['laypage', 'layer','table','form','laydate'], function(){
        var laypage = layui.laypage
            ,layer = layui.layer
            ,form = layui.form
            , table = layui.table
			, laydate = layui.laydate;

        laydate.render({
            elem: '#datestr'
            ,range: true
            ,type: 'date'
        });

        var globalpath = "${path}";
        table.render({
            url: globalpath+"/log/query",
            method: 'POST', //方式
            elem: '#layuitable', //数据表格渲染到什么位置
            id: 'layuitable', //生成 Layui table 的标识 id 用于操作数据用
            where: { }, //默认 参数 type: "all"
            height: 500 ,  //容器高度
            //width:1000,
            cols: [[
                //要想 宽度不变形，每个列都需要指定宽度width:180，或者指定宽度百分比width:10%最后一个可以不指定
                {checkbox: true },//checkbox框 , LAY_CHECKED: true 默认都选中
                {field: 'id', title: 'ID'  },
                {field:"path",title:'请求地址',minWidth:150 },
                {field:"method",title:'请求方式',minWidth:80 },
                {field:"model",title:'操作模块',minWidth:100 },
                {field:"params",title:'参数',minWidth:100 },
                {field:"status",title:'状态码',minWidth:50 },
                {field:"exTime",title:'执行时间(毫秒)',minWidth:110 },
                {field:"createUser",title:'操作人',minWidth:100 },
                {field:"clientIp",title:'ip地址',minWidth:120 },
                //{field:"content",title:'内容',align:"center",width:180},
                {field:"createTime",title:'时间',minWidth:145  },
                //{field:"opt",title:'操作' , toolbar: '#toolbar' }
            ]],
            done: function(res, curr, count){//隐藏列
                $("[data-field='id']").css('display','none');

                $("[data-field='createTime']").children().each(function(){//格式化 类型
                	var thisText = $(this).text();
                    if(thisText!=null && thisText !="" && thisText !='时间'  ){
                        $(this).text(DateFormat.format(new Date( parseInt(thisText)) , 'yyyy-MM-dd hh:mm:ss'));
                    }
                })


               /* $("[data-field='type']").children().each(function(){//格式化 类型
                    // 类型 0：增加数据、1：修改数据、2：删除数据、3：登录系统、4：其他、9：系统异常
                    if($(this).text()=='0'){
                        $(this).text("增加数据")
                    }else if($(this).text()=='1'){
                        $(this).text("修改数据")
                    }else if($(this).text()=='2'){
                        $(this).text("删除数据")
                    }else if($(this).text()=='3'){
                        $(this).text("登录系统")
                    }else if($(this).text()=='4'){
                        $(this).text("其他")
                    }else if($(this).text()=='9'){
                        $(this).text("系统异常")
                    }
                })*/
            },
			 request: {//修改请求参数的 属性名字
				 pageName: 'page' //页码的参数名称，默认：page
				 ,limitName: 'row' //每页数据量的参数名，默认：limit
			 },
            response: {
                statusName: 'code' //数据状态的字段名称，默认：code
                ,statusCode: 1//成功的状态码，默认：0
                //,msgName: 'hint' //状态信息的字段名称，默认：msg
                //,countName: 'total' //数据总数的字段名称，默认：count
               // ,dataName: 'rows' //数据列表的字段名称，默认：data
            },
            page: {layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']}, //是否显示分页栏
            //limits: [10,20,30],//默认10-90
            limit: 10//默认采用30

        });
        //table.find("[data-field='fi_id']").css("display","none"); //data-field的值就是你想要隐藏的某一列的field

        //复选框点击的时候 layuitable 为列表的ID
        table.on('checkbox(tableFilter)', function(obj){
            //changeCheckedCss(obj);//自定义 的操作按钮 选中的时候 样式的控制
            //console.log(obj.checked); //当前是否选中状态
            // console.log(obj.data); //选中行的相关数据
            //console.log(obj.type); //如果触发的是全选，则为：all，如果触发的是单选，则为：one
        });
        //监听工具条
        table.on('tool(tableFilter)', function(obj){ //注：tool是工具条事件名，tableFilter是table原始容器的属性 lay-filter="对应的值"
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值
            var tr = obj.tr; //获得当前行 tr 的DOM对象
            var id = data.id;
            if(layEvent === 'add'){ //添加
                add();
            } else if(layEvent === 'detail'){ //查看
                addOrUpdate(layEvent,id)
            } else if(layEvent === 'update'){ //编辑
                addOrUpdate(layEvent,id);
            } else if(layEvent === 'del'){ //删除
                del(id);
            }
        });

    });


    function add() {
        addOrUpdate('add','');
    }


    //查看、添加、修改 的公用页面
    function addOrUpdate(opttype,id) {
        parent.layer.open({
            type:2,
            btn: ['确定', '取消'],
            area: ['40%', '60%'],
            skin: 'layui-layer-lan',
            title: '<span>日志信息</span>' ,
            shade: [0.5, '#393D49'],
            maxmin: true, //开启最大化最小化按钮
            content:"${path}/log/jump?opttype="+opttype+"&id="+id,
            yes:function(index,frameDom){
                var openFrame = $(frameDom).find("iframe")[0].contentWindow; // 窗口
                if(opttype=='add'){//添加
                    var res = openFrame.save();
                    if(res){//调用 添加方法
                        parent.layer.close(index);//关闭当前窗口
                        setTimeout(reloadTable,500);
                    }else{
                        return false;
                    }
                }else if(opttype=='detail'){//查看
                    parent.layer.close(index);//关闭当前窗口
                }else if(opttype=='update'){//修改
				    var res = openFrame.update();
                    if(res){//调用 添加方法
                        parent.layer.close(index);//关闭当前窗口
                        setTimeout(reloadTable,500);
                    }else{
                        return false;
                    }
                }
            }

        });
    }


    //删除
    function del(id) {
        var delid = [];
        if(id){//单个删除

        }else{//多条件删除
            var checkRows = layui.table.checkStatus('layuitable').data;//数组
            if(checkRows.length<=0){
                layer.msg('请选择要删除的数据！', {icon: 5});
                return;
            }
            for(var i in checkRows){
                delid.push(checkRows[i].id);
            }
            id = delid;
        }

        parent.layer.confirm('确认要删除吗？', {
            btn : [ '确定', '取消' ]//按钮
        }, function(index) {
            //执行删除……
            var url = "${path}/log/delete?id="+id;
            $.ajax({
                url:url,
                type:"POST",
                data:{},
                dataType:"json",
                success:function(data){
                    if(data.success==true || data.success=='true' ){
                        parent.layer.msg('删除成功！', {icon: 1});
                        layer.close(index);
                        setTimeout(reloadTable,500);
                    }else{
                        parent.layer.msg('删除失败！', {icon: 5});
                    }
                },
                error:function(data){
                    parent.layer.msg('系统异常！', {icon: 5});
                }
            });


        });

    }

    //导出
    $("#exportSysLog").on("click",function () {
        parent.layer.confirm('确认要导出数据吗？', {
            btn : [ '确定', '取消' ]//按钮
        }, function(index) {
            //执行导出
            var datestr = $("#datestr").val();
            var urls =  "${path}/log/export";
            //选择指定数据导出优先

            var ids = [];
            var checkRows = layui.table.checkStatus('layuitable').data;//数组
            if(checkRows.length>0){
                for(var i in checkRows){
                    ids.push(checkRows[i].id);
                }
                urls =   "${path}/log/export?id="+ids.join(",");
            }else{
                if(datestr){
                    urls =   "${path}/log/export?datestr="+datestr;
                }
			}
            location.href = urls ;
            parent.layer.close(index);
        });

    });
</script>

